/**
 * 各种类型的字符串化
 *
 */

/**
 * 处理query String
 * @param json
 * @returns {string}
 */
export function query(json) {
    return '?' +
        Object.keys(json).map((key) => {
            return encodeURIComponent(key) + '=' +
                encodeURIComponent(json[key]);
        }).join('&');
}

/**
 * 处理query String JSON版
 * @param json
 * @returns {string}
 */
export function queryJson(json, c) {
    let ret = {
        d: JSON.stringify(json)
    }

    if(c) {
        ret['c'] = JSON.stringify(c);
    }

    return query(ret)
}

/*
* 获取URL上面内容
*/
export function getUrlString(name)
{
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}


/**随机字符串 */
export function randomString(len) {
　　len = len || 20;
　　var $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
　　var maxPos = $chars.length;
　　var pwd = '';
　　for (let i = 0; i < len; i++) {
　　　　pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
　　}
　　return pwd;
}

/**
 * 隐藏手机号
 * @param str 手机号码
 */
export function hidePhone(str) {
    return str.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}

/**
 * 隐藏制定长度字符串
 * @param str
 * @param start
 * @param length
 * @param hideChar
 * @returns {*}
 */
export function hide(str, start, length, hideChar) {
    if (isEmptyOrNull(hideChar)) {
        hideChar = "*";
    }
    if (str.length < start + length) {
        if (str.length == 2) {
            str.replace(start, start + length, "*");
        }
        return str;
    }
    var n = length;
    var temp;
    while (n > 0) {
        n--;
        temp += hideChar;
    }
    return str.replace(start, start + length, temp);
}

/**
 * 验证字符空串
 * @param str
 * @returns {boolean}
 */
export function isEmptyOrNull(str) {
    if (null === str || "" === str) {
        return true;
    }
    return false;
}

//计算百分比
export function precent(d1, d2) {
    var number = parseInt(d1 / d2 * 10000) / 100;
    return number.toFixed(2);
}

/**
 * 去除左右空格
 * @param {String} s 
 */
export function trim(s){
    return s.replace(/(^\s*)|(\s*$)/g, "");
}
